JS面试题一

1. 重复输出一个给定的字符串

重复输出一个给定的字符串( str 第一个参数)n 次 ( num 第二个参数),如果第二个参数 num 小于0的时候,返回空字符串。

答:三种方法

1.使用循环 2.使用递归 3.ES6 repeat方法

方法1:通过while循环重复输出一个字符串

1
2
3
4
5
6
7
8
9
function repeatStringNumTimes(str, num) {
var repeatedStr = "";
while (num > 0) {
repeatedStr += str;
num--;
}
return repeatedStr;
}
repeatStringNumTimes("abc", 3);

同理for循环也一样

1
2
3
4
5
6
7
8
function repeatStringNumTimes(str, num) {
var repeatedStr = "";
for(var i = 0; i < num ;i++) {
repeatedStr += str;
}
return repeatedStr;
}
repeatStringNumTimes("abc", 3)

方法2:通过条件判断和递归重复输出一个字符串

1
2
3
4
5
6
7
8
9
10
11
function repeatStringNumTimes(str, num) {
if(num < 0) {
return "";
}
if(num == 1) {
return str;
} else {
return str + repeatStringNumTimes(str, num - 1);
}
}
repeatStringNumTimes("abc", 3);

方法3:使用ES6 repeat() 方法重复输出一个字符串

1
2
3
4
5
6
7
8
function repeatStringNumTimes(str, num) {
if (num > 0) {
return str.repeat(num);
} else {
return "";
}
}
repeatStringNumTimes("abc", 3);

1
2
3
4
5
// 上面👆转成三元表达式
function repeatStringNumTimes(str, num) {
num > 0 ? str.repeat(num) : "";
}
repeatStringNumTimes("abc", 3);

2. JS查找字符串中出现次数最多的字符

JS查找字符串中出现次数最多的字符

答:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var str = "jialuchunzheshiceshi";
var o = {};
for (var i = 0, i < str.length; i++) {
var char = str.charAt(i);
if (o[char]) {
o[char]++; // 次数加1
} else {
o[char] = 1; // 若第一次出现,次数记为1
}
}
console.log(o); // 输出的是完整的对象,记录着每一个字符及其出现的次数
// 遍历对象,找到出现次数最多的字符的次数
var max = 0;
for (var key in o) {
if (max < o[key]) {
max = o[key]; // max始终储存次数最大的那个
}
}
for (var key in o) {
if (o[key] == max) {
// console.log(key);
console.log("最多的字符是" + key);
console.log("出现的次数是" + max);
}
}

文章目录
  1. 1. 1. 重复输出一个给定的字符串
  2. 2. 2. JS查找字符串中出现次数最多的字符
|